package com.hbnu.system.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hbnu.system.config.PostDeserializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author ${author}
 * @since 2023-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("platform")
public class Platform implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键 平台编号
     */
    @ApiModelProperty(value = "主键 平台编号")
    @TableId(value = "PlatformID", type = IdType.ASSIGN_ID)
    private String PlatformID;

    /**
     * 统计分类
     */
    @ApiModelProperty(value = "统计分类")
    @TableField("classifi")
    private String classifi;

    /**
     * 机构名称
     */
    @ApiModelProperty(value = "机构名称")
    @TableField("agencyName")
    private String agencyName;

    /**
     * 机构编号
     */
    @ApiModelProperty(value = "机构编号")
    @TableField("agencyId")
    private String agencyId;

    /**
     * 机构类别
     */
    @ApiModelProperty(value = "机构类别")
    @TableField("agencyCate")
    private String agencyCate;

    /**
     * 机构级别
     */
    @ApiModelProperty(value = "机构级别")
    @TableField("agencyLevel")
    private String agencyLevel;

    /**
     * 科研平台类型
     */
    @ApiModelProperty(value = "科研平台类型")
    @TableField("platformType")
    private String platformType;

    /**
     * 是否统计
     */
    @ApiModelProperty(value = "是否统计")
    @TableField("count")
    private String count;

    /**
     * 成立时间
     */
    @ApiModelProperty(value = "成立时间")
    @TableField("establishedTime") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate establishedTime;

    /**
     * 负责人
     */
    @ApiModelProperty(value = "负责人")
    @TableField("head")
    private String head;

    /**
     * 所属机构
     */
    @ApiModelProperty(value = "所属机构")
    @TableField("organize")
    private String organize;

    /**
     * 批准部门
     */
    @ApiModelProperty(value = "批准部门")
    @TableField("approvalDept")
    private String approvalDept;

    /**
     * 研究活动类型
     */
    @ApiModelProperty(value = "研究活动类型")
    @TableField("studyType")
    private String studyType;

    /**
     * 组成方式
     */
    @ApiModelProperty(value = "组成方式")
    @TableField("compositionMethod")
    private String compositionMethod;

    /**
     * 学科分类
     */
    @ApiModelProperty(value = "学科分类")
    @TableField("disciplineClassifi")
    private String disciplineClassifi;

    /**
     * 组成类型
     */
    @ApiModelProperty(value = "组成类型")
    @TableField("compositionType")
    private String compositionType;

    /**
     * 服务的国民经济行业
     */
    @ApiModelProperty(value = "服务的国民经济行业")
    @TableField("industry")
    private String industry;

    /**
     * 共建单位名称
     */
    @ApiModelProperty(value = "共建单位名称")
    @TableField("cooperateUnit")
    private String cooperateUnit;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址")
    @TableField("address")
    private String address;

    /**
     * 邮编
     */
    @ApiModelProperty(value = "邮编")
    @TableField("zipcode")
    private String zipcode;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    @TableField("phone")
    private String phone;

    /**
     * 附件
     */
    @ApiModelProperty(value="附件")
    @JsonDeserialize(using = PostDeserializer.class)
    private byte[] annex;

    /**
     * 传真
     */
    @ApiModelProperty(value = "传真")
    @TableField("fax")
    private String fax;

    /**
     * 网址
     */

    @ApiModelProperty(value = "网址")
    @TableField("website")
    private String website;

    /**
     * 电子邮箱
     */

    @ApiModelProperty(value = "电子邮箱")
    @TableField("Email")
    private String Email;

    /**
     * 中文图书数
     */
    @ApiModelProperty(value = "中文图书数")
    @TableField("bookChinese")
    private String bookChinese;

    /**
     * 外文图书数
     */
    @ApiModelProperty(value = "外文图书数")
    @TableField("bookForeign")
    private String bookForeign;

    /**
     * 中文期刊
     */
    @ApiModelProperty(value = "中文期刊")
    @TableField("journalChinese")
    private String journalChinese;

    /**
     * 外文期刊
     */
    @ApiModelProperty(value = "外文期刊")
    @TableField("journalForeign")
    private String journalForeign;

    /**
     * 意义
     */
    @ApiModelProperty(value = "意义")
    @TableField("significance")
    private String significance;

    /**
     * 设想
     */
    @ApiModelProperty(value = "设想")
    @TableField("imagine")
    private String imagine;

    /**
     * R&D活动人数（合计
     */
    @ApiModelProperty(value = "R&D活动人数（合计")
    @TableField("RDnums")
    private String RDnums;

    /**
     * 博士毕业
     */
    @ApiModelProperty(value = "博士毕业")
    @TableField("doctor")
    private String doctor;

    /**
     * 硕士毕业
     */
    @ApiModelProperty(value = "硕士毕业")
    @TableField("master")
    private String master;

    /**
     * 高级职称
     */
    @ApiModelProperty(value = "高级职称")
    @TableField("seniorTitle")
    private String seniorTitle;

    /**
     * 中级职称
     */
    @ApiModelProperty(value = "中级职称")
    @TableField("intermediateTitle")
    private String intermediateTitle;

    /**
     * 初级职称
     */
    @ApiModelProperty(value = "初级职称")
    @TableField("juniorTitle")
    private String juniorTitle;

    /**
     * 培养研究生数（人
     */
    @ApiModelProperty(value = "培养研究生数（人")
    @TableField("postgraduateNums")
    private String postgraduateNums;

    /**
     * 经费支出（千元
     */
    @ApiModelProperty(value = "经费支出（千元")
    @TableField("fundsOut")
    private String fundsOut;

    /**
     * 仪器和设备原价（千元
     */
    @ApiModelProperty(value = "仪器和设备原价（千元")
    @TableField("devicesFee")
    private String devicesFee;

    /**
     * 进口（千元
     */
    @ApiModelProperty(value = "进口（千元")
    @TableField("importFee")
    private String importFee;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @TableField("entered")
    private String entered;

    /**
     * 录入时间
     */
    @ApiModelProperty(value = "录入时间")
    @TableField("enteredDate") //fill = FieldFill.INSERT 自动填入
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enteredDate;

    /**
     * 审核状态
     */
    @ApiModelProperty(value = "审核状态")
    @TableField("status")
    private String status;

    /**
     * 退回原因
     */
    @ApiModelProperty(value = "退回原因")
    @TableField("reason")
    private String reason;


}
